package com.client.forms;

import java.util.Map;

import com.client.controller.NotNullTextBoxController;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.shared.model.Compagnie;


public class CompagnieEditor extends DataEditor<Compagnie> {
	
	private TextBox nomTextBox = new TextBox();
	private TextBox numeroTelTextBox = new TextBox();
	private TextBox numeroFaxTextBox = new TextBox();
	private AdresseEditor adresseEditorPrinc = new AdresseEditor();
	private AdresseEditor adresseEditorSecond = new AdresseEditor();
	
	public CompagnieEditor() {
		edited = new Compagnie();
		setSpacing(5);
		Label labelRens = new Label("Description");		
		labelRens.setStyleName("titre") ;
		add(labelRens);
		
		HorizontalPanel nomPanel = new HorizontalPanel();
		nomPanel.add(new Label("Nom : "));
		nomPanel.add(nomTextBox);
		add(nomPanel);
		listController.add(new NotNullTextBoxController(nomTextBox, "Nom Compagnie"));
		
		HorizontalPanel numeroTelPanel = new HorizontalPanel();
		numeroTelPanel.add(new Label("Numéro de téléphone : "));
		numeroTelPanel.add(numeroTelTextBox);
		add(numeroTelPanel);
		listController.add(new NotNullTextBoxController(numeroTelTextBox, "Numéro de téléphone"));
		
		HorizontalPanel numeroFaxPanel = new HorizontalPanel();
		numeroFaxPanel.add(new Label("Numéro de fax : "));
		numeroFaxPanel.add(numeroFaxTextBox);
		add(numeroFaxPanel);
		listController.add(new NotNullTextBoxController(numeroFaxTextBox, "Numéro de fax"));
		
		Label adressePrincLabel = new Label("Adresse Principale");
		adressePrincLabel.setStyleName("titre") ;
		add(adressePrincLabel);
		add(adresseEditorPrinc);
		
		Label adresseSecondLabel = new Label("Adresse Secondaire");
		adresseSecondLabel.setStyleName("titre") ;
		add(adresseSecondLabel);
		add(adresseEditorSecond);
	}
	@Override
	public void fill() {
		if(edited!=null){
			nomTextBox.setValue(edited.getNom());
			numeroTelTextBox.setValue(edited.getNumeroTel());
			numeroFaxTextBox.setValue(edited.getNumeroFax());			
			adresseEditorPrinc.setEdited(edited.getAdresse1());
			adresseEditorPrinc.fill();
			adresseEditorSecond.setEdited(edited.getAdresse2());
			adresseEditorSecond.fill();
		}
		
	}

	@Override
	public Compagnie getEdited() throws IllegalArgumentException{
		check();
		edited.setNom(nomTextBox.getValue());
		edited.setNumeroTel(numeroTelTextBox.getValue());
		edited.setNumeroFax(numeroFaxTextBox.getValue());
		edited.setAdresse1(adresseEditorPrinc.getEdited());
		edited.setAdresse2(adresseEditorSecond.getEdited());
		return super.getEdited();
	}
	
	@Override
	public Map<String, String> getEditedAsMap() throws IllegalArgumentException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setEmpty() {
		setEdited(new Compagnie());
		fill();		
	}

}
